Engine air-fuel ratio control

ABSTRACT

A fuel injector ( 5 ) injects fuel to generate an air-fuel mixture that is burnt in the engine ( 1 ), and a sensor ( 16 ) detects an air-fuel ratio of the air-fuel mixture from an exhaust gas composition of the engine ( 1 ). A controller ( 11 ) calculates a dead time representing a lag between the air-fuel ratio variation of the air-fuel mixture and the air-fuel ratio variation detected by the sensor ( 16 ), and calculates an estimated state quantity by applying a dead time compensation according to Smith method and a disturbance compensation to the air-fuel ratio detected by the sensor ( 16 ). By determining an air-fuel ratio feedback correction amount based on the estimated state quantity applying a sliding mode control process, the response and stability of air-fuel ratio control is improved.

FIELD OF THE INVENTION

[0001] This invention relates to application of a sliding mode control process to an engine air-fuel ratio control.

BACKGROUND OF THE INVENTION

[0002] U.S. Pat. No. 6,266,605 discloses an application of a sliding mode control process to the feedback control of the air-fuel ratio of an air-fuel mixture supplied to an internal combustion engine.

[0003] In this prior art technique, an air-fuel ratio sensor is provided upstream and downstream of a catalyst in an exhaust passage, respectively, and calculates an output target value of the upstream air-fuel ratio sensor for which the output of the down-stream air-fuel ratio sensor is a predetermined value by a sliding mode control process.

[0004] The fuel injection amount is then feedback controlled by the sliding mode control process so that the output of the upstream air-fuel ratio sensor coincides with the target output value.

[0005] The dynamic characteristic of the down-stream air-fuel ratio sensor output relative to the upstream air-fuel ratio sensor output is expressed as a secondary discrete model for feedback control which makes the output of the down-stream air-fuel ratio sensor coincide with a predetermined value. The output of the down-stream air-fuel ratio sensor after a dead time has elapsed is estimated using the model, based on the output of the upstream air-fuel ratio sensor, and the dead time between the outputs of the two sensors is compensated.

SUMMARY OF THE INVENTION

[0006] The compensation of the dead time in the prior art technique is limited between the output of the two sensors. No correction is made for the dead time from fuel injection to the output of the upstream air-fuel ratio sensor. Also, the classic proportional integral differential (PID) controller or a self-tuning regulator is applied to the feedback control of the fuel injection amount.

[0007] For this reason, if the feedback gain is increased in the low air flowrate region near idle operation of the engine, where there is virtually a large dead time, the air-fuel ratio will tend to oscillate.

[0008] It is therefore an object of this invention to stabilize an air-fuel ratio control under sliding mode control with a large feedback gain.

[0009] In order to achieve the above object, this invention provides an air-fuel ratio control device for an engine with a combustion chamber for burning a mixture of air and fuel. The device comprises a fuel injector which injects fuel in the engine to generate the mixture, a sensor which detects an air-fuel ratio of the mixture from a composition of exhaust gas of the engine, and a programmable controller.

[0010] The programmable controller is programmed to calculate a dead time which represents a lag between the variation of air-fuel ratio of the mixture in the combustion chamber and the variation of air-fuel ratio which is detected by the sensor, calculates an estimated state quantity by applying a dead time compensation according to Smith method and a disturbance compensation to the air-fuel ratio detected by the sensor, calculate an air-fuel ratio feedback correction amount based on the estimated state quantity and a predetermined target air-fuel ratio through a sliding mode control process, and control a fuel injection amount of the fuel injector based on the air-fuel ratio feedback correction amount.

[0011] This invention also provides an air-fuel ratio control method for an engine with a combustion chamber for burning a mixture of air and fuel, and a fuel injector which injects fuel in the engine to generate the mixture. The method comprises detecting an air-fuel ratio of the mixture from a composition of exhaust gas of the engine, calculating a dead time which represents a lag between the variation of air-fuel ratio of the mixture in the combustion chamber and the variation of a detected air-fuel ratio, calculating an estimated state quantity by applying a dead time compensation according to Smith method and a disturbance compensation to the detected air-fuel ratio, calculating an air-fuel ratio feedback correction amount based on the estimated state quantity and a predetermined target air-fuel ratio through a sliding mode control process, and controlling a fuel injection amount of the fuel injector based on the air-fuel ratio feedback correction amount.

[0012] The details as well as other features and advantages of this invention are set forth in the remainder of the specification and are shown in the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

[0013]FIG. 1 is a schematic diagram of a gasoline engine to which this invention is applied.

[0014]FIG. 2 is a block diagram describing a sliding mode control function of a controller according to this invention.

[0015]FIG. 3 is a diagram showing an engine physical model for describing a control process according to this invention.

[0016]FIG. 4 is a timing chart describing the step response characteristic of the air-fuel ratio variation in a cylinder, and a variation of the air-fuel ratio detected from the exhaust gas composition of the engine.

[0017]FIG. 5 is a diagram describing a variation of the state quantity of an error in a sliding mode control process according to this invention.

[0018]FIG. 6 is a diagram describing the design process of various functions and equations required for the sliding mode control process according to this invention.

[0019]FIG. 7 is a flowchart describing a routine for calculating an air-fuel ratio feedback correction value ALPHA performed by the controller.

[0020]FIG. 8 is a flowchart describing a subroutine for calculating a switching function gain element S₁ performed by the controller.

[0021]FIGS. 9A and 9B are timing charts showing a variation of the air-fuel ratio feedback correction value ALPHA when the air-fuel ratio in the cylinder is controlled using a fixed integration gain in a low rotation-speed region.

[0022]FIGS. 10A and 10B are timing charts showing a variation of the air-fuel ratio feedback correction value ALPHA when the air-fuel ratio in the cylinder is controlled using a fixed integration gain in a high rotation-speed region.

[0023]FIGS. 11A and 11B are timing charts showing a variation of the air-fuel ratio feedback correction value ALPHA when the air-fuel ratio in the cylinder is controlled using a variable integration gain in the high rotation-speed region.

[0024]FIG. 12 is a flowchart describing a subroutine for calculating an integration gain μ performed by the controller.

[0025]FIG. 13 is a flowchart describing a subroutine for calculating a state quantity σ(n) of the switching function, a linear input u_(eq)(n), a nonlinear input u_(nl)(n) and a total control input U_(sl) performed by the controller.

[0026]FIG. 14 is a block diagram describing a dead-time compensation function of the controller.

[0027]FIG. 15 is a block diagram describing a principle of the Smith method applied for a dead-time compensation.

[0028]FIG. 16 is a block diagram describing a disturbance correction combined with the dead-time compensation based on the Smith method, applied by the controller.

[0029]FIG. 17 is a flowchart describing a routine for calculating an estimated state variable performed by the controller.

[0030]FIG. 18 is a flowchart describing a subroutine for calculating a model dead time d_(M) performed by the controller.

[0031] FIGS. 19A-19G are timing charts describing a variation of a state quantity {circumflex over (x)}₂(n) of the estimated state variable accompanying change-over of the model dead time d_(M).

[0032]FIG. 20 is a flowchart describing a subroutine for calculating the estimated state variable during the model dead-time change-over performed by the controller.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0033] Referring to FIG. 1 of the drawings, a gasoline engine 1 for a vehicle is provided with a combustion chamber 1A, an intake passage 2 and an exhaust passage 3 which are respectively connected to the combustion chamber 1A via valves.

[0034] An intake throttle 4 is provided in the intake passage 2.

[0035] A catalytic converter 7 which contains a three-way catalyst is provided in the exhaust passage 3.

[0036] An air-fuel mixture of fuel and air is supplied to the combustion chamber 1A when a fuel injector 5 injects fuel into the air aspirated by the combustion chamber 1A through the intake passage 2. The air-fuel mixture burns when a spark plug 6 installed in the combustion chamber 1A ignites the air-fuel mixture.

[0037] After combustion, exhaust gas is ejected to the exhaust passage 3. The exhaust gas is purified by the catalytic converter 7 and then ejected into the atmosphere.

[0038] The three-way catalyst in the catalytic converter 7 is a known catalyst which supports a noble metal such as platinum and rhodium, and an oxygen storage material such as cerium oxide, barium or a base metal on a catalyst support. The three-way catalyst promotes reduction of the nitrogen oxide (NOx) and oxidation of hydrocarbon (HC) and carbon monoxide (CO) in the exhaust gas when the air-fuel mixture burns near the stoichiometric air fuel ratio. It also has an oxygen storage function which stores oxygen contained in the exhaust gas and discharges the stored oxygen as the oxygen concentration in the exhaust gas decreases. In order for the oxygen storage function to function correctly, the air-fuel ratio of the air-fuel mixture burnt in the combustion chamber 1A must be in the proper range.

[0039] An air-fuel ratio control of the air-fuel mixture is performed by a programmable controller 11 which regulates a fuel injection amount of the fuel injector 5. The fuel injection timing of the fuel injector 5 and the ignition timing of the spark plug 6 are also controlled by the controller 11.

[0040] The controller 11 comprises a microcomputer equipped with a central processing unit (CPU), read-only memory (ROM), random access memory (RAM) and I/O interface (I/O interface). It is also possible to construct the controller from plural microcomputers.

[0041] To perform the above control, detection data are input from a rotation speed sensor 13 which detects the rotation speed of the engine 1, a crank angle sensor 12 which detects a predetermined crank angle of the engine 1, an air flow meter 14 which detects an intake air amount of the intake passage 2, a water temperature sensor 15 which detects a cooling water temperature of the engine 1, and upstream and downstream air-fuel ratio sensors 16, 17 which respectively detect the air-fuel ratio of the air-fuel mixture supplied to combustion chamber 1A from the exhaust gas composition.

[0042] The upstream air-fuel ratio sensor 16 is disposed upstream of the catalytic converter 7 in the exhaust passage 3, and the down-stream air-fuel ratio sensor 17 is disposed downstream of the catalytic converter 7 in the exhaust passage 3.

[0043] The upstream air-fuel ratio sensor 16 comprises a so-called universal exhaust gas oxygen sensor which can detect a variation of the air-fuel ratio of the air-fuel mixture over a wide range from lean to rich.

[0044] The downstream air-fuel ratio sensor 17 comprises an oxygen sensor which changes output sharply when the air-fuel ratio of the air-fuel mixture varies beyond the stoichiometric air fuel ratio.

[0045] The controller 11 calculates an oxygen storage amount of the three-way catalyst based on the following premise. The noble metal which forms the three-way catalyst stores oxygen at high speed, and the oxygen storage material stores oxygen at low speed.

[0046] The oxygen storage material continues storage of oxygen even after the oxygen storage capacity of the noble metals is saturated. In oxygen release, when the proportion of the amount of oxygen release of the noble metal and the amount of oxygen release of oxygen storage material is less than a fixed proportion, oxygen is preferentially released from the noble metal. After the proportion of the release amounts reaches the fixed proportion,oxygen is released from the noble metal and oxygen storage material at the fixed proportion.

[0047] The controller 11 performs the air-fuel ratio control of the air-fuel mixture by making the oxygen storage amount of the noble metal, which performs storage and discharge of oxygen at high speed, a parameter. Even when the air-fuel ratio shifts from the stoichiometric air fuel ratio due to this control, the noble metal of the three-way catalyst performs oxygen storage or release at high speed so that the shift is compensated. In this way, the three-way catalyst maintains the oxygen concentration of the exhaust gas at a value corresponding to the stoichiometric air-fuel ratio, and the three-way catalyst shows a high exhaust gas purification capacity.

[0048] In the following description, the oxygen storage amount of the three-way catalyst implies the oxygen storage amount of the noble metal.

[0049] Now, the controller 11 calculates the oxygen storage amount of the three-way catalyst based on the air-fuel ratio detected by the upstream air-fuel ratio sensor 16.

[0050] If the oxygen storage amount exceeds a target storage amount, the air-fuel ratio of the air-fuel mixture supplied to the combustion chamber 1A will be corrected in the rich direction.

[0051] Conversely, if the oxygen storage amount is less than the target storage amount, the air-fuel ratio of the air-fuel mixture supplied to the combustion chamber 1A will be corrected in the lean direction.

[0052] The controller 11 controls the air-fuel ratio so that the oxygen storage amount is equal to the target storage amount. The control of the air-fuel ratio is materialized by the control of the fuel injection amount of the fuel injector 5.

[0053] As an error cumulates in the calculation of the oxygen storage amount in the above air-fuel ratio control process, the control precision deteriorates. Thus, the controller 11 resets the calculated oxygen storage amount to cancel out the error at a timing when the output of the downstream air-fuel ratio sensor 17 changes from rich to lean or vice versa.

[0054] The controller 11 applies a sliding mode control process to the feedback control of the air-fuel ratio. The function of the controller 11 with respect to the sliding mode control process is shown in FIG. 2.

[0055] Referring to FIG. 11, the controller is provided with a target air-fuel ratio calculation unit 21, a sliding mode control unit 22 and fuel injection amount calculation unit 30.

[0056] In the following equation (1), the fuel injection amount calculation unit 30 calculates the fuel injection amount of the fuel injector 5. Here, the fuel injection amount is expressed as pulse width CTI of an injection pulse-wave signal output to the fuel injector 5 from the controller 11.

CTI=(TP·TFBYA+KATHOS)·(ALPHA+KBLRC−1)+TS+CHOS  (1)

[0057] where,

[0058] TP=basic fuel injection pulse width,

[0059] TFBYA=target equivalence ratio,

[0060] KATHOS=open-loop correction value of the fuel injection amount,

[0061] ALPHA=air-fuel ratio feedback correction value,

[0062] KBLRC=air-fuel ratio learning value,

[0063] TS=ineffectual injection pulse width, and

[0064] CHOS=open-loop correction value of the fuel injection amount per cylinder.

[0065] The basic fuel injection amount TP is a value obtained by adding a correction for a transit time of air from the throttle 4 to combustion chamber 1A, to a basic fuel injection pulse width corresponding to the throttle opening determined based on a depression amount of an accelerator pedal with which the vehicle is provided and the rotation speed of the engine 1. The calculation of the basic fuel injection amount TP is known from U.S. Pat. No. 5,529,043.

[0066] The sliding mode control unit 22 comprises a switching function calculation unit 23, a nonlinear input calculation unit 24, a linear input calculation unit 25, an integrator 26, an adder 27, a conversion unit 28 and a correction limitation unit 29.

[0067] The function of these parts will be described in full detail later.

[0068] As mentioned above, although it is well-known to apply a sliding mode control process to the feedback control of air-fuel ratio, this invention is based on a new concept with respect to the application of the sliding mode control process to calculation of the air-fuel ratio feedback correction value ALPHA.

[0069] Referring to FIG. 3, it is expected that the air-fuel ratio of the air-fuel mixture supplied to the combustion chamber 1A of the engine 1 will be a target air-fuel ratio due to the open-loop correction values KATHOS and CHOS.

[0070] Therefore, the dynamic characteristic of the air-fuel mixture, the dynamic characteristic of exhaust gas and the dynamic characteristic of the upstream air-fuel ratio sensor 16 can be integrated, and can be expressed as a transfer function of a secondary discrete system.

[0071] Providing that the input to the engine 1 as a plant is the air-fuel ratio of the air-fuel mixture in the combustion chamber 1A, and the output from the engine 1 is the air-fuel ratio detected by the upstream air-fuel ratio sensor 16, the transfer function Geng(q) of the secondary discrete system except for the dead time may be expressed by the equation (2). $\begin{matrix} {{{Geng}(q)} = \frac{{b_{1} \cdot q} + b_{0}}{q^{2} + {a_{1} \cdot q} + a_{0}}} & (2) \end{matrix}$

[0072] where

[0073] q=dispersion system shift operator,

[0074] a₁, a₀=differentiation multipliers, and

[0075] b₁, b₀=differentiation multipliers.

[0076] It is confirmed experimentally that the relation between the above-mentioned input and output of the engine 1 is as shown in FIG. 4. Therefore, the transfer function Geng(q) can be identified by the application of an Auto Regressive with eXogeneous Variable (ARX) model used for modeling a linear time-invariant system.

[0077] The system-identification approach using the ARX model is disclosed by Tokkai 2000-291484 published by the Japanese Patent Office in 2000.

[0078] It is also possible to identify the transfer function Geng(q) based on the method of least squares.

[0079] Even in a plant with a strong nonlinear nature like an engine, the step response of the air-fuel ratio can be measured in every operating region, and a transfer function can be identified for every operating region.

[0080] It should be noted that, in the following descriptions, a matrix x(n) will be expressed as mat x(n).

[0081] The transfer function Geng(q) of the secondary discrete system is described by the following state equations (3) and (4) representing a state space expression of the secondary discrete system. $\begin{matrix} \begin{matrix} {{{mat}\quad {x\left( {n + 1} \right)}} = \quad {{{mat}\quad {A \cdot {mat}}\quad {x(n)}} + {{mat}\quad {B \cdot {u(n)}}}}} \\ {= \quad {{{\begin{bmatrix} {- a_{1}} & 1 \\ {- a_{0}} & 0 \end{bmatrix} \cdot {mat}}\quad {x(n)}} + {\begin{bmatrix} b_{1} \\ b_{0} \end{bmatrix} \cdot {u(n)}}}} \end{matrix} & (3) \\ {{{mat}\quad {y(n)}} = {{{mat}\quad {C \cdot {mat}}\quad {x(n)}} = {{\begin{bmatrix} 1 & 0 \end{bmatrix} \cdot {mat}}\quad {x(n)}}}} & (4) \end{matrix}$

[0082] where,

[0083] mat A=system matrix,

[0084] mat B=input matrix,

[0085] mat C=output matrix,

[0086] mat x(n)=state variable,

[0087] mat y(n)=output

[0088] u(n)=input,

[0089] a₁, a₀=elements of system-matrix mat A, and

[0090] b₁, b₀=elements of input matrix mat B.

[0091] The elements a₁, a₀ of the system-matrix mat A are identical to the differentiation multipliers a₁, a₀ of the equation (2) and the elements b₁, b₀ of input matrix mat B are identical to the differentiation multipliers b₁, b₀ of the equation (2).

[0092] The input u(n) is the air-fuel ratio of the air-fuel mixture in the combustion chamber 1A calculated from the pulse width CTI of the fuel injection pulse signal, and the output y(n) is the air-fuel ratio detected by the upstream air-fuel ratio sensor 16.

[0093] The state variable used in the equation (3) and (4) is expressed by a matrix.

[0094] The controller 11 performs control of the air-fuel ratio of the air-fuel mixture in the combustion chamber 1A repeatedly at a fixed interval. The subscript (n) of the equations (3) and (4) denotes a value on the present occasion and the subscript (n+1) denotes a value on the next occasion.

[0095] In the general state equations, m is the number of inputs and l is the number of outputs, where, m and l are positive integers. Here, the state equation has two inputs and two outputs, 2 a and 2 b, which are easy to grasp as physical quantities. Therefore, m=2 and l=2.

[0096] The state variable matx(n) is a column vector with two elements x₁(n), x₂(n). The output maty(n) is a column vector with two elements y₁(n), y₂(n). The output matrix mat C is determined such that the system has effectively one output. Specifically, y₁(n)=x₁(n) while y₂(n)=0 in the equation (4). The air-fuel ratio AFSAF detected by the upstream air-fuel ratio sensor 16 is adopted as y₁(n).

[0097] Summarizing the above relations, the following equations (5) and (6) are obtained.

y ₁(n)=x ₁(n)=AFSAF  (5)

y ₂(n)=0  (6)

[0098] The elements a₁, a₀ of the system-matrix mat A and the elements b₁, b₀ of the input matrix mat B in the equation (3) have been fixed in the process of determining the transfer function of the equation (2).

[0099] Consider a servosystem which makes the state variable mat x(n) follow a certain orbit within the state space by applying a sliding mode control process to the system identified by the discrete system. The state amount mat e(n) of the error of the discrete system model is given as the difference between the state amount mat x(n) and a state quantity θ(n) of a target value corresponding to the orbit as shown by the following equation (7). $\begin{matrix} {{{mat}\quad {e(n)}} = {{{{mat}\quad {x(n)}} - {{mat}\quad {\theta (n)}}} = {\begin{bmatrix} {x_{1}(n)} \\ {x_{2}(n)} \end{bmatrix} - \begin{bmatrix} {\theta_{1}(n)} \\ {\theta_{2}(n)} \end{bmatrix}}}} & (7) \end{matrix}$

[0100] where,

[0101] e(n)=state quantity of error,

[0102] θ(n)=state quantity of target value,

[0103] x₁(n), x₂(n)=elements of state variable x(n),

[0104] θ₁(n)=target value of x₁(n), and

[0105] θ₂(n)=target value of x₂(n).

[0106] Since θ₁(n) in the equation (7) is a target value when x₁(n)=AFSAF, the target value θ₁(n) is equal to the target air-fuel ratio TGABF. The controller 11 defines the switching function of the discrete system model by the following equation (8). $\begin{matrix} \begin{matrix} {{\sigma (n)} = \quad {{{mat}\quad {S \cdot {mat}}\quad {e(n)}} = {{\begin{bmatrix} S_{1} & S_{2} \end{bmatrix} \cdot {mat}}\quad {e(n)}}}} \\ {= \quad {{S_{1} \cdot \left\{ {{x_{1}(n)} - {\theta_{1}(n)}} \right\}} + {S_{2} \cdot \left\{ {{x_{2}(n)} - {\theta_{2}(n)}} \right\}}}} \\ {= \quad 0} \end{matrix} & (8) \end{matrix}$

[0107] where,

[0108] σ(n)=state quantity of switching function,

[0109] mat S=switching function gain, and

[0110] S₁, S₂=elements of the switching function gain mat S.

[0111]FIG. 5 shows the variation of the state quantity mat e(n) of the error in the sliding mode control process that is indicated on a phase plane.

[0112] The state quantity mat e(n) of error is first constrained on the switching function represented by the straight line by the nonlinear input which represents the distance between the state quantity and the switching function in the drawing. Then, the switching function is slid by equivalent control input which is linear input, and it converges to the origin of the phase plane. In this way, the state variable mat x(n) can be made to converge to the state amount mat θ(n) of the target value. When S₂ is fixed, if S₁, which is an element of the switching function gain mat S, is increased, the slope of the line will increase. In other words, the control gain increases.

[0113] As there are two elements of the state variable mat x(n), the switching function is expressed as a straight line, and is physically easy to grasp on the phase plane, but if there are three elements in the state variable mat x(n), the switching function will be a flat surface on the phase plane, and if the number of elements increases further, the switching function will be a super-flat surface.

[0114] Next, a method of calculating the control input of linear input and nonlinear input will be described. In a continuous system with sliding mode conditions, σ=0 and {dot over (σ)}=0 hold.

[0115] Here, the differential value of σ is shown as {dot over (σ)}. On the other hand, sliding mode conditions in a discrete system are expressed by the following equations (9) and (10).

σ(n)=0  (9)

Δσ(n+1)=σ(n+1)−σ(n)=0  (10)

[0116] Equation (10) is rewritten as the following equation (11). $\begin{matrix} \begin{matrix} {{\Delta \quad {\sigma \left( {n + 1} \right)}} = \quad {{\sigma \left( {n + 1} \right)} - {\sigma (n)}}} \\ {= \quad {{{mat}\quad {S \cdot \left\{ {{{mat}\quad {x\left( {n + 1} \right)}} - {{mat}\quad {\theta \left( {n + 1} \right)}}} \right\}}} - {\sigma (n)}}} \\ {= \quad {{mat}\quad {S \cdot \left\{ {{{mat}\quad {A \cdot {mat}}\quad {x(n)}} + {{mat}\quad {B \cdot {u_{eq}(n)}}} -} \right.}}} \\ {{\quad \left. {{mat}\quad {\theta \left( {n + 1} \right)}} \right\}} - (n)} \end{matrix} & (11) \end{matrix}$

[0117] If det (mat S·mat B)⁻¹≠0 in the equation (6), linear input, i.e., equivalent control input, is expressed by the following equation (12), where det expresses determinant. $\begin{matrix} {{{mat}\quad {u_{eq}(n)}} = {{{{- \left( {{mat}\quad {S \cdot {mat}}\quad B} \right)^{- 1}} \cdot {mat}}\quad {S \cdot \left\{ {{{mat}\quad {A \cdot {mat}}\quad {x(n)}} - {{mat}\quad {\theta \left( {n + 1} \right)}}} \right\}}} - {\sigma (n)}}} & (12) \end{matrix}$

[0118] By rewriting the equation (12) using scalar values obtained from the equations (3) and (4), the following equation (13) will be obtained. $\begin{matrix} {{u_{eq}(n)} = {\left( {{S_{1} \cdot b_{1}} + {S_{2} \cdot b_{0}}} \right)^{- 1} \cdot \left( {{a_{1} \cdot S_{1}} + {a_{0} \cdot S_{2}} + \frac{S_{1}^{2}}{S_{2}}} \right) \cdot \left\{ {{x_{1}(n)} - {\theta_{1}(n)}} \right\}}} & (13) \end{matrix}$

[0119] Next, a nonlinear input will be described. Nonlinear input can be applied arbitrarily.

[0120] Although the nonlinear input can be expressed as one function including a compensation for the disturbance, in this control system, the nonlinear input is divided into a portion β(n) for the disturbance and a portion α(n) for the other elements. As a result, the following equation (14) is obtained.

u _(nl)(n)={α(n)+β(n)}·sgn[σ(n)]  (14)

[0121] where,

[0122] β(n)>Hmax,

[0123] α(n), β(n)=positive scalar value function, and

[0124] Hmax=maximum estimated value of disturbance.

[0125] sgn[σ(n)] of the equation (14) expresses a sign function. According to this function, when the state amount σ(n)>0, sgn[σ(n)]=1, and when the state quantity σ(n)<0, sgn[σ(n)]=−1. The sign function is necessary so that, for example, when the state quantity mat e(n) of the error crosses the line of the switching function in FIG. 5 towards the lower side, the nonlinear input returns the state amount of the error towards the upper side beyond the switching function on the next occasion when the control is performed.

[0126] The conditions of the nonlinear input to prevent so called chattering of the result are expressed by the following relations (15) and (16).

[0127] (i) In the case of state amount σ(n)>0:

0≦σ(n+1)≦σ(n)  (15)

[0128] (ii) In the case of state amount σ(n)<0:

σ(n)≦σ(n+1)≦0  (16)

[0129] Relation (15) means that the state amount of the error is closer to zero, which is the convergence point, on the next occasion (n+1) than on the present control occasion (n).

[0130] The scalar value function α(n) which satisfies the conditional relation (15) is calculated using the following equation (17) which is derived from the equation (8).

σ(n+1)=mat S·mat e(n+1)  (17)

[0131] When the state amount σ(n)=mat S mat e(n) in the system expressed by the state equations (3) and (4), the input which satisfies the relation of σ(n)=σ(n+1)=σ(n+2) is the linear input calculated by the equation (13). The equation (17) in this case is expressed by the following equation (18). $\begin{matrix} \begin{matrix} {{\sigma \left( {n + 1} \right)} = \quad {{mat}\quad {S \cdot \left\{ {{{mat}\quad {x\left( {n + 1} \right)}} - {{mat}\quad {\theta \left( {n + 1} \right)}}} \right\}}}} \\ {= \quad {{mat}\quad {S \cdot \left\lbrack {{{mat}\quad {A \cdot {mat}}\quad {x(n)}} + {{mat}\quad {B \cdot}}} \right.}}} \\ {\quad \left. {\left\{ {{u_{nl}(n)} + {u_{eq}(n)}} \right\} - {{mat}\quad {A \cdot {mat}}\quad {\theta (n)}}} \right\rbrack} \\ {= \quad {{\alpha (n)} + {{mat}\quad {S \cdot {mat}}\quad {B \cdot {u_{nl}(n)}}}}} \end{matrix} & (18) \end{matrix}$

[0132] From the equation (18), the conditions which satisfy the equation (15) are expressed by the following equation (19).

∥mat S·mat B∥·α(n)≦∥α(n)∥  (19)

[0133] From the equation (19), the scalar value function α(n) which satisfies the equation (15) is expressed by the following equation (20).

α(n)=η·∥mat S·mat B∥ ⁻¹·σ(n)∥  (20)

[0134] where,

[0135] η=nonlinear gain (0<η<1), and

[0136] σ(n+1)>σ(n)>0.

[0137] Therefore, the nonlinear input u_(nl)(n) is expressed by the following equation (21). $\begin{matrix} \begin{matrix} {{u_{nl}(n)} = \quad {\left\{ {{\eta \cdot {{{mat}\quad {S \cdot {mat}}\quad B}}^{- 1} \cdot {{\sigma (n)}}} + {\beta (n)}} \right\} \cdot {{sgn}\left\lbrack {\sigma (n)} \right\rbrack}}} \\ {= \quad {\left\{ {{\eta \cdot {{{S_{1} \cdot b_{1}} + {S_{2} \cdot b_{0}}}}^{- 1} \cdot {{\sigma (n)}}} + {{\beta (n)}}} \right\} \cdot {{sgn}\left\lbrack {\sigma (n)} \right\rbrack}}} \end{matrix} & (21) \end{matrix}$

[0138] where, 0<η<1 and σ(n+1) σ(n)>0.

[0139] The equation (21)prevents chattering while providing robust air-fuel ratio control to external disturbance.

[0140] Thus, after calculating the linear input u_(eq)(n) by the equation (13) and calculating the nonlinear input u_(nl)(n) by the equation (21), the air-fuel ratio control input u_(sl)(n) which is the total control input is calculated by the following equation (22).

u _(sl)(n)=κ·∫u _(eq)(n)dt+u _(nl)(n)  (22)

[0141] where, κ=integration gain.

[0142] The first term on the right-hand side of the equation (22) integrates the linear input u_(eq)(n). The integrator 26 shown in FIG. 2 is provided for this purpose.

[0143] The objective of the integrator 26 is to improve convergence to the target air-fuel ratio which is variable, and to absorb the steady-state deviation.

[0144] Next, referring to FIG. 6, the design flow of the sliding mode control process in the development stage of the air-fuel ratio controller will be described.

[0145] First, in a step S1, the step response of the air-fuel ratio detected by the upstream air-fuel ratio sensor 16 with respect to the air-fuel ratio in the combustion chamber 1A is measured, and the results shown in FIG. 4 are for example obtained. The step response measurement is performed for various cylinder intake air amounts Qc of the engine 1 calculated from the output signal of the air flow meter 14.

[0146] Next, in a step S2, the second order transfer function Geng(q) of the discrete system is identified using an ARX model or the method of least squares. As a result of the identification, the elements a₁, a₀ of the system matrix mat A and the elements b₁, b₀ of the input matrix mat B are determined according to the intake air amount Qc. Next, in a step S3, the transfer function Geng(q) is converted to the state equations of the secondary discrete system expressed by the equations (3), (4).

[0147] Next, in a step S4, the switching function σ(n)=0 is designed.

[0148] In subsequent steps S5, S6, S7, the equation (13) for calculating the linear input u_(eq)(n), the equation (21) for calculating the nonlinear input u_(nl)(n), and the equation (22) for calculating the air-fuel ratio control input u_(sl)(n), are designed, respectively.

[0149] Next, the difference between the sliding mode control process according to this invention and the sliding mode control process applied by the above-mentioned prior U.S. Pat. No. 6,266,605 will be described.

[0150] A canonical system expressed by the next equation (23) will be taken as an example. $\begin{matrix} {{\frac{}{t}\begin{bmatrix} x_{1} \\ x_{2} \end{bmatrix}} = {{\begin{bmatrix} A_{11} & A_{12} \\ A_{21} & A_{22} \end{bmatrix} \cdot \begin{bmatrix} x_{1} \\ x_{2} \end{bmatrix}} + {\begin{bmatrix} 0 \\ B_{2} \end{bmatrix} \cdot u}}} & (23) \end{matrix}$

[0151] where, x₁εR^(n−m), and x₂εR^(m).

[0152] In the prior art example, an extension field shown by the following equation (24) which adds a value z which is an integration of the difference of a target value θr and the output θy to the state variable is used. $\begin{matrix} {{\frac{}{t}\begin{bmatrix} z \\ x_{1} \\ x_{2} \end{bmatrix}} = {{\begin{bmatrix} 0 & {- C} & 0 \\ 0 & A_{11} & A_{12} \\ 0 & A_{21} & A_{22} \end{bmatrix} \cdot \begin{bmatrix} z \\ x_{1} \\ x_{2} \end{bmatrix}} + {\begin{bmatrix} 0 \\ 0 \\ B_{2} \end{bmatrix} \cdot u} + {{\begin{bmatrix} 1 \\ 0 \\ 0 \end{bmatrix} \cdot \theta}\quad r}}} & (24) \end{matrix}$

[0153] where, AεR^(n m), xεR^(n), BεR^(n·m), and z = ∫₀^(t)(θ  r − θ  y)t

[0154] In the extension field, the switching function is defined by the following equation (25).

σ(n)=mat S·mat x=S ₁ ·z+S ₂ ·x ₁ +x ₂=0  (25)

[0155] In the above-mentioned extension field, as the integral term z exists in the equation (25), the operation of the nonlinear input equation (21) which originally assures response when there is a state change becomes slow, and the robustness to disturbances is also low.

[0156] In this invention, by giving an integration term to the linear input as in the equation (22), rapid convergence to the target air-fuel ratio is achieved without reducing the response even in the case where an extension field is used.

[0157] Next, a routine for calculating the air-fuel ratio feedback correction value ALPHA performed by the controller 11 will be described referring to FIG. 7.

[0158] This routine is performed at an interval of ten milliseconds when the engine 1 is operated by considering the stoichiometric air fuel ratio as the target air-fuel ratio. Alternatively, it may be performed at a predetermined crank angle detected by the crank angle sensor 12.

[0159] This routine corresponds to the function of the sliding mode control unit 22 of FIG. 2.

[0160] In a first step S11, the controller 11 reads the target air-fuel ratio TGABF, and in a following step S12, reads the real air-fuel ratio AFSAF.

[0161] In a following step S13, the state amounts x₁, x₂ are calculated. From the equation (4), y₁=x₁ and y₂=0 are satisfied. y₁ is the air-fuel ratio AFSAF detected by the upstream air-fuel ratio sensor 16. The equation (23) denotes simultaneous equations with two variables, [x₁, x₂]. If this is solved for the state amounts x₁, x₂, x₂ can be calculated as a function of x₁. Then, x₂ can be calculated if the detected air-fuel ratio AFSAF is substituted for x₁.

[0162] In a following step S14, the switching function σ(n)=0 is calculated using the state variable mat x(n), the state amount θ of the target value, and the switching function gain mat S. The processing of the step S14 corresponds to the function of the switching function calculation unit 23 of FIG. 2.

[0163] In a following step S15, the nonlinear input u_(nl)(n) is calculated by the equation (21) using the state amount σ(n), nonlinear gain η, switching function gain mat S, input matrix mat B, scalar value function β(n), and the sign function sgn[σ(n)].

[0164] The processing of the step S15 corresponds to the function of the nonlinear input calculation unit 24 of FIG. 2.

[0165] In a following step S16, the linear input u_(eq)(n) is calculated by the equation (13) using the state amount x₁(n), target value σ₁(n), switching function gain mat S, input matrix mat B and system-matrix mat A. The processing of the step S16 corresponds to the function of the linear input calculation unit 25 of FIG. 2.

[0166] In a following step S17, the linear input u_(eq)(n) is integrated.

[0167] In a following step S18, the sum of the integral value and the nonlinear input u_(nl)(n) is calculated as the air-fuel ratio control input u_(sl)(n). The processing of the steps S17, S18 corresponds to the function of the integrator 26 of FIG. 2.

[0168] In a following step S19, the air-fuel ratio control input u_(sl)(n) is converted to the air-fuel ratio feedback correction value ALPHA by the following equation (26). $\begin{matrix} {{ALPHA} = {\frac{CYLAF}{\left\{ {{CYLAF} + {u_{sl}(n)}} \right\}} \cdot 100}} & (26) \end{matrix}$

[0169] where, CYLAF=air-fuel ratio of the air-fuel mixture which burns in the combustion chamber 1A.

[0170] In the equation (25), units are converted from ratios to percentages. The processing of the step S19 corresponds to the function of the conversion unit 28 of FIG. 2.

[0171] In a following step S20, the controller 11 limits the air-fuel ratio feedback correction value ALPHA with a predetermined limiting value.

[0172] Processing of step S20 corresponds to the function of the correction limitation unit 29 of FIG. 2.

[0173] In the last step S201, an injection pulse-wave signal corresponding to the air-fuel ratio feedback correction value ALPHA after limitation is output to the fuel injector 5.

[0174] The processing of the step S201 corresponds to the function of the fuel injection amount calculation unit 30 of FIG. 2.

[0175] A controller 11 terminates the routine after processing of the step S201.

[0176] The equation (26) is reduced from the following equation (27). $\begin{matrix} {{CYLAF} = \frac{14.76 \cdot {TP}}{{TP} \cdot {TFBYA} \cdot \left( {{ALPHA} + {KBLRC} - 1} \right)}} & (27) \end{matrix}$

[0177] Next, the setting process of the element S₁ of the switching function gain mat S when the air-fuel ratio of the air-fuel mixture in the combustion chamber 1A is feedback controlled is described.

[0178] Herein, what is required is to calculate only one element S₁ of the switching function gain mat S. Another element S₂ is necessarily equal to 1 or −1 for the reason later mentioned.

[0179] If the air-fuel ratio of the air-fuel mixture in combustion chamber 1A changes suddenly as a result of air-fuel ratio feedback control, an undesirable effect may appear in the drivability of the vehicle or in the exhaust gas composition of the engine 1.

[0180] So, it is necessary to limit the feedback correction amount of the fuel injection amount with a threshold value so as not to cause the variation in the air-fuel ratio of the air-fuel mixture to become excessively large.

[0181] On the other hand, if the air-fuel ratio feedback correction amount is suppressed to a small value, the convergency to the target air-fuel ratio will be slower.

[0182] To summarize the above, the convergency of the air-fuel ratio to the target air-fuel ratio and drivability of the vehicle as well as the exhaust gas composition of the engine may have the a trade-off relation.

[0183] The integral gain μ which provides a preferable time constant with respect to the air-fuel ratio control response is expressed by the following equation (28). This equation (28) is obtained from the equation (13) which calculates the linear input u_(eq)(n) and the integration term of the right-hand side of the equation (22) which calculates the air-fuel control input u_(sl)(n). $\begin{matrix} {\mu = {\kappa \cdot \left( {{S_{1} \cdot b_{1}} + {S_{2} \cdot b_{0}}} \right)^{- 1} \cdot \left( {{a_{1} \cdot S_{1}} + {a_{0} \cdot S_{2}} + \frac{S_{1}^{2}}{S_{2}}} \right)}} & (28) \end{matrix}$

[0184] If the integration gain κ of the linear input is set equal to unity in the equation (28), the element S₁ of the switching function gain mat S which represents the slope of the straight line in FIG. 5 is expressed by the following equation (29). $\begin{matrix} {S_{1} = \frac{\left\lbrack {{{- S_{2}} \cdot \left( {a_{1} - {\mu \cdot b_{1}}} \right)} \pm {S_{2} \cdot \left\{ {\left( {a_{1} - {\mu \cdot b_{1}}} \right)^{2} - \left( {a_{0} - {\mu \cdot b_{0}}} \right)} \right\}^{\frac{1}{2}}}} \right\rbrack}{2}} & (29) \end{matrix}$

[0185] Since S₁ calculated by the equation (29) can take two values, the controller 11 performs stability distinction and selects the value that provides higher stability.

[0186] Next, referring to FIG. 8, a subroutine for calculating the element S₁ of the switching function gain mat S will be described.

[0187] This subroutine is performed as a part of the processing of the step S14 of the routine of FIG. 7, which calculates the air-fuel ratio feedback correction value ALPHA.

[0188] First in a step S21, the controller 11 determines the integral gain μ that provides the aforesaid preferable time constant with respect to the air-fuel ratio control response.

[0189] Here, the integral gain μ is determined by performing a subroutine shown in FIG. 12, but it is also possible to those skilled in the art to set the integral gain μ to a fixed value that is empirically proved to be practical.

[0190] In a following step S22, based on the integral gain μ, the element S₁ of the switching function gain mat S is calculated by the equation (29).

[0191] Although the value of S₂ is required in order to calculate the element S₁, due to the reason described below, the value of S₂ is equal to unity when the element a₀ of the system-matrix mat A is a positive value and the value of S₂ is equal to negative unity when the element a₀ of the system-matrix mat A is a negative value.

[0192] Referring to FIGS. 9A, 9B and FIGS. 10A, and 10B, a variation of the air-fuel ratio feedback correction value ALPHA when the integration gain μ is set to a fixed value will be described.

[0193]FIGS. 9A and 9B show a variation of the air-fuel ratio feedback correction value ALPHA at a low engine rotation speed, and FIGS. 10A and 10B show a variation of the air-fuel ratio feedback correction value ALPHA at a high engine rotation speed.

[0194] Since the fuel injection amount per unit time increases with a raise of the rotation speed of an engine 1 in calculating the air-fuel ratio feedback correction value ALPHA at intervals of fixed time spacing, i.e., ten milliseconds, the variation of the air-fuel ratio feedback correction value ALPHA per one injection at high rotation speed is smaller than that at low rotation speed. With respect to the examples shown in the figures, ALPHA varies for two percent at low rotation speed while it varies for five percent at high rotation speed under an identical integration gain.

[0195] Therefore, when the integration gain matched with low rotation is applied to high rotation, the variation of the air-fuel ratio feedback correction value ALPHA per one injection becomes too small, and the air-fuel ratio control response will be poor.

[0196] Due to the above reason, in order to maintain the air-fuel ratio control response in a desirable range, it is preferable to vary the value of the integration gain according to the rotation speed of an engine 1.

[0197]FIGS. 11A and 11B show a variation of the air-fuel ratio feedback correction value ALPHA when the integration gain is set according to the rotation speed of an engine 1.

[0198] By selecting a different integration gain according to the rotation speed of an engine 1, the variation of the air-fuel ratio feedback correction value ALPHA per one injection can be increased to five percent that is equal to the value obtained in the case of FIGS. 9A and 9B.

[0199] The axis of abscissa of these diagrams is a crank angle, and a perpendicular broken line shows spacing of the Ref signal which a crank angle sensor 12 outputs at a predetermined rotation position of the engine 1.

[0200] Ref signal is output at intervals of 180 degrees with a four-stroke cycle four cylinder engine.

[0201] The subroutine of FIG. 8 for calculating the element S₁ of the switching function gain mat S is provided to satisfy the above requirement.

[0202] Next, referring to FIG. 12, the subroutine for setting the integration gain μ will be described. This subroutine is performed in the step S21 of the subroutine of FIG. 8.

[0203] First, in a step S31, the rotation speed Ne of the engine 1 is read. The rotation speed Ne is obtained from the signal input to the controller 11 from the crank angle sensor 12.

[0204] In a following step S32, with reference to the map of a characteristic as shown in the figure, a correction factor KNE is obtained according to the rotation speed Ne.

[0205] In a following step S33, the integration gain μ is calculated by multiplying an integration gain basic value μ0 by the correction factor KNE. Herein, the integration gain basic value is a fixed value matched with the minimum rotation speed of an engine 1.

[0206] In the step S21 of FIG. 8, therefore, the element S₁ of the switching function gain mat S is calculated using the integration gain that is set according to the rotation speed of the engine 1.

[0207] The controller 11 applies the switching function gain element S₁ thus calculated, for the calculation of the nonlinear input in the step S15 and for the calculation of the liner input in the step S16 of the routine of FIG. 7.

[0208] Next, the calculation of the nonlinear input and the linear input using the switching function gain element S₁ will be described in detail below.

[0209] First, the equation (8) defining the state quantity σ(n) of the switching function is converted into the following equation (30) using the equation (7). $\begin{matrix} \begin{matrix} {{\sigma (n)} = \quad {{mat}\quad {S \cdot {mat}}\quad {e(n)}}} \\ {= \quad {{S_{1} \cdot \left\{ {{x_{1}(n)} - \theta_{1}} \right\}} + {S_{2} \cdot \left\{ {{x_{2}(n)} - \theta_{2}} \right\}}}} \\ {= \quad {{S_{1} \cdot \left\{ {{x_{1}(n)} - \theta_{1}} \right\}} - {S_{2} \cdot a_{0} \cdot \left\{ {{x_{1}\left( {n - 1} \right)} - \theta_{1}} \right\}}}} \end{matrix} & (30) \end{matrix}$

[0210] The sign of the state quantity mate of the error must have alternated when the state quantity mat e(n) of the error crosses the line of the switching function shown in FIG. 5.

[0211] Therefore, the sign of the first term and the sign of the second term of the right hand side of the equation (30) must be different.

[0212] The following conditions are drawn from the above logic.

[0213] (i) In the case of a₀>0, S₂=1, and

[0214] (ii) in the case of a₀<0, S₂=−1.

[0215] The state quantity σ(n) of the switching function in each of the above conditions can be expressed by the following equations (31) and (32) using the elements.

[0216] (i) In the case of a₀>0:

σ(n)=S ₁ ·{x ₁(n)−θ₁ }+{x ₂(n)−θ₂}  (31)

[0217] (ii) In the case of a₀<0:

σ(n)=S ₁ ·{x ₁(n)−θ₁ }−{x ₂(n)−θ₂}  (32)

[0218] Moreover, if the above conditions (i) and (ii) are applied to the equation (13) of the linear input, the equation (21) of the nonlinear input, the total control input, and the equation (22) of the total control input or the air-fuel ratio control input, the following equations (33)-(38) will be obtained.

[0219] The actual calculation of the steps S15-S17 of the routine of FIG. 7 is performed using these equation (33)-(38).

[0220] Linear Input

[0221] (i) In the case of a₀>0:

u _(eq)(n)=(S ₁ ·b ₁ +b ₀)⁻¹·(a ₁ ·S ₁ +a ₀+1)·{x ₁(n)−θ₁(n)}  (33)

[0222] (ii) In the case of a₀<0:

u _(eq)(n)=(S ₁ ·b ₁ −b ₀)⁻¹·(a ₁ ·S ₁ −a ₀−1)·{x ₁(n)−θ₁(n)}  (34)

[0223] Nonlinear Input

[0224] (i) In the case of a₀>0:

u _(nl)(n)={η|S ₁ ·b ₁ +b ₀|⁻¹|σ(n)|+β(n)}·sgn[σ(n)]  (35)

[0225] where, 0<η<1 and σ(n+1) σ(n)>0.

[0226] (ii) In the case of a₀<0:

u _(nl)(n)={η|S ₁ ·b ₁ −b ₀|⁻¹|σ(n)|+β(n)}·sgn[σ(n)]  (36)

[0227] where, 0<η<1 and σ(n+1) σ(n)>0.

[0228] Total Control Input

[0229] (i) In the case of a₀>0: $\begin{matrix} {{u_{sl}(n)} = {{\kappa \cdot {\int{\left\lbrack {\left( {{S_{1} \cdot b_{1}} + b_{0}} \right)^{- 1}{\left( {{a_{1} \cdot S_{1}} + a_{0} + 1} \right) \cdot \left\{ {{x_{1}(n)} - {\theta_{1}(n)}} \right\}}} \right\rbrack \cdot {t}}}} + {\left\{ {{\eta {{{S_{1} \cdot b_{1}} + b_{0}}}^{- 1}{{\sigma (n)}}} + {\beta (n)}} \right\} \cdot {{sgn}\left\lbrack {\sigma (n)} \right\rbrack}}}} & (37) \end{matrix}$

[0230] (ii) In the case of a₀<0: $\begin{matrix} {{u_{sl}(n)} = {{\kappa \cdot {\int{\left\lbrack {\left( {{S_{1} \cdot b_{1}} - b_{0}} \right)^{- 1}{\left( {{a_{1} \cdot S_{1}} - a_{0} - 1} \right) \cdot \left\{ {{x_{1}(n)} - {\theta_{1}(n)}} \right\}}} \right\rbrack \cdot {t}}}} + {\left\{ {{\eta {{{S_{1} \cdot b_{1}} + b_{0}}}^{- 1}{{\sigma (n)}}} + {\beta (n)}} \right\} \cdot {{sgn}\left\lbrack {\sigma (n)} \right\rbrack}}}} & (38) \end{matrix}$

[0231] Next, referring to FIG. 13, a subroutine performed by the controller 11 for calculating the state quantity σ(n) of the error, the linear input u_(eq)(n), the nonlinear input u_(nl)(n), and the total control input u_(sl) will be described.

[0232] This subroutine corresponds to the calculation processing of the step S14 through the step S18 of the routine of FIG. 7, but will be described more in detail according to the positive/negative sign of the element a₀ of the system matrix mat A.

[0233] The controller 11 determines first whether the sign of the element a₀ is positive in a step S41.

[0234] When the sign of the element a₀ is positive, the processing of steps S42-S45 is performed. When the sign of the element a₀ is not positive, the processing of steps S46-S49 is performed.

[0235] In the step S42, the state quantity σ(n) of the switching function is calculated by the equation (31).

[0236] In the following step S43, the linear input u_(eq)(n) is calculated by the equation (33).

[0237] In the following step S44, the nonlinear input u_(nl)(n) is calculated by the equation (35).

[0238] In the following step S45, the total control input u_(sl)(n) is calculated by the equation (37). After the processing of the step S45, the controller 11 terminates the subroutine.

[0239] On the other hand, in the step S46, the state quantity σ(n) of the switching function is calculated by the equation (32).

[0240] In the following step S47, the linear input u_(eq)(n) is calculated by the equation (34).

[0241] In the following step S48, the nonlinear input u_(nl)(n) is calculated by the equation (36).

[0242] In the following step S49, the total control input u_(sl)(n) is calculated by the equation (38). After the processing of the step S49, the controller 11 terminates the subroutine.

[0243] The sliding mode control process of the air-fuel ratio performed by the controller 11 is described above.

[0244] In the description so far, the engine 1 is assumed to be a simple system without dead time. However, in reality, the dead time cannot be ignored in order to perform a precise air-fuel ratio control of the engine.

[0245] The controller 11 is provided with a state estimation unit 31 for processing of the dead time as shown in FIG. 14.

[0246] It should be noted that FIG. 2 is a block diagram provided only for the explanation of the sliding mode control function of the controller 11 according to this invention, and FIG. 14 is a block diagram showing the architecture of the whole control function of the controller 11.

[0247] The state estimation unit 31 is equipped with a cylinder intake air-fuel ratio calculation unit 32, a model schedule unit 33, a plant-model state-variable calculation unit 34, and an estimated state variable calculation unit 35.

[0248] Respective functions of these units will be described later with reference to the flowchart of FIG. 17.

[0249] The processing of the dead time performed by the controller 11 will first be described.

[0250] The basic idea for controlling a plant which has dead time is explained in detail below.

[0251] Herein, the engine 1 having a dead time in the air-fuel ratio regulation is the control object of the controller 11, so in the following description, it will be referred to as a controlled plant.

[0252] The controlled plant can be expressed by the following equations (39) and (40).

mat x(n+1)=mat A·mat x(n)+mat B·u(n−d)  (39)

mat y(n)=mat C·mat x(n)  (40)

[0253] where,

[0254] mat x(n)=state quantity of the controlled plant,

[0255] mat y(n)=output of the controlled plant,

[0256] u(n−d)=input of the controlled plant,

[0257] mat A=system matrix of the controlled plant,

[0258] mat B=input matrix of the controlled plant,

[0259] mat C=output matrix of the controlled plant, and

[0260] d=dead time of the controlled plant.

[0261] Comparing the equation (39) with the equation (3), the only difference is that u(n) of the equation (3) is replaced by u(n−d) in the equation (39).

[0262] The equation (40) is identical to the equation (4).

[0263] The equations (3) and (4) are state equations for a plant without dead time. In contrast with the controlled plant, a plant without dead time is hereinafter referred to as a plant model.

[0264] In order to distinguish the state equations for the controlled plant from those of the plant model, in the following description, subscript M will be attached to the state variables of the plant model.

[0265] According to this notation, the state equations (3) and (4) representing the plant model are rewritten into the following equations (41) and (42).

mat x _(M)(n+1)=mat A·mat x _(M)(n)+mat B·u(n)  (41)

mat y _(M)(n)=mat C·mat x _(M)(n)  (42)

[0266] where,

[0267] mat x_(M)(n)=state variable of the plant model,

[0268] mat y_(M)(n)=output of the plant model,

[0269] u(n)=input of the plant model,

[0270] mat A=system matrix of the plant model,

[0271] mat B=input matrix of the plant model,

[0272] mat C=output matrix of the plant model, and

[0273] mat x(n)=state variable.

[0274] Although the transfer function Geng(q) of the plant model is expressed with the equation (2), the transfer function Geng(z) of the controlled plant is expressed with the following equation (43). $\begin{matrix} {{{Geng}(z)} = \frac{{b_{1} \cdot z^{- 1}} + {b_{0} \cdot z^{- 2}}}{\left\{ {1 + {\left( {z^{- 1} - d} \right) \cdot a_{1}} + {\left( {z^{- 1} - d} \right)^{2} \cdot a_{0}}} \right\}}} & (43) \end{matrix}$

[0275] where,

[0276] a₁, a₀=differentiation multiplier,

[0277] b₁, b₀=differentiation multiplier, and

[0278] d=dead time.

[0279] U.S. Pat. No. 5,544,039 disclose the correction approach using the Smith method shown in FIG. 15, in order to compensate the effect of the dead time which the controlled plant suffers.

[0280] The Smith method is a compensation method for the dead time developed by O. J. M. Smith, Department of Electrical Engineering and Computer Sciences, University of California,Berkeley.

[0281] According to the Smith method, the state variable mat {circumflex over (x)}(n+d_(M)) of the controlled plant after the model dead time d_(M) has elapsed is expressed with the following equation (44).

[0282] The state variable of the controlled plant after the model dead time d_(M) has elapsed is referred to as an estimated state variable in the following description. $\begin{matrix} {{{mat}\quad {\hat{x}\left( {n + d_{M}} \right)}} = {{{mat}\quad {A^{d} \cdot {mat}}\quad {x(n)}} + {\left\lbrack {B,{AB},\cdots \quad,{A^{d - 1}B}} \right\rbrack \cdot \begin{bmatrix} {u\left( {n - 1} \right)} \\ \vdots \\ {u\left( {n - d_{M}} \right)} \end{bmatrix}}}} & (44) \end{matrix}$

[0283] where, mat {circumflex over (x)}(n+d_(M))=estimated state variable.

[0284] The above equation (44) is transformed using the equations (41) and (42) to the following equation (45). $\begin{matrix} \begin{matrix} {{{mat}\quad {\hat{x}(n)}} = \quad {{mat}\quad {x\left( {n + d_{M}} \right)}}} \\ {= \quad {{{mat}\quad {A^{d} \cdot {mat}}\quad {x(n)}} + {{mat}\quad {x_{M}(n)}} - {{mat}\quad {A^{d} \cdot}}}} \\ {\quad {{mat}\quad {x_{M}\left( {n - d_{M}} \right)}}} \end{matrix} & (45) \end{matrix}$

[0285] mat x_(M)(n−d_(M)) of the right-hand side of the equation (45) is the state variable of the plant model after the model dead time d_(M) has elapsed. Although the Smith method can apply a desirable response to target value input, it is known that the transient response over a disturbance is not necessarily good.

[0286] In order to improve this drawback, adding a disturbance compensator, as shown in FIG. 16 is known.

[0287] A method of designing the disturbance compensator is disclosed for example by “Control of Dead Time System” issued by Corona publishing company under the supervision of the Society of Measurement and Automatic Control.

[0288] In the air-fuel control device according to this invention, research on the actual dynamic characteristics of a model shown in FIG. 16, and the transfer function M(z) was designed based on the research result.

[0289] To summarize the research result, due to the observability of the state variable mat x(n), the estimated state variable mat {circumflex over (x)}(n) can be expressed by the equations (46), (47) or the equation (48) below. $\begin{matrix} \begin{matrix} {{{mat}\quad {\hat{x}(n)}} = \quad {{mat}\quad {x\left( {n + d_{M}} \right)}}} \\ {= \quad {{{mat}\quad {{M(n)} \cdot \left\{ {{{mat}\quad {x(n)}} - {{mat}\quad {x_{M}\left( {n - d_{M}} \right)}}} \right\}}} +}} \\ {\quad {{mat}\quad {x_{M}(n)}}} \end{matrix} & (46) \end{matrix}$

 mat M(n)=1  (47)

[0290] or $\begin{matrix} \begin{matrix} {{{mat}\quad {\hat{x}(n)}} = \quad {{mat}\quad {x\left( {n + d_{M}} \right)}}} \\ {= \quad {{{mat}\quad {x(n)}} - {{mat}\quad {x_{M}\left( {n - d_{M}} \right)}} + {{mat}\quad {x_{M}(n)}}}} \end{matrix} & (48) \end{matrix}$

[0291] where,

[0292] mat {circumflex over (x)}(n)=state variable of the controlled plant after the model dead time d_(M) has elapsed,

[0293] mat x(n)=state variable of the controlled plant,

[0294] mat x_(M)(n)=state variable of the plant model,

[0295] mat x_(M)(n−d_(M))=state variable of the plant model after the model dead time d_(M) has elapsed, and

[0296] mat M(n)=system matrix of the disturbance compensator.

[0297] When the equation (48) is expressed with scalar values, the state quantities {circumflex over (x)}₁(n) and {circumflex over (x)}₂(n) of the estimated state variable mat {circumflex over (x)}(n) are expressed by the following equations (49) and (50). In the following description {circumflex over (x)}₁(n) and {circumflex over (x)}₂(n)) are referred to as an estimated state quantity.

{circumflex over (x)} ₁(n)=x ₁(n+d _(M))=x ₁(n)−x _(1M)(n−d _(M))+x _(1M)(n)  (49)

{circumflex over (x)} ₂(n)=x ₂(n+d _(M))=x ₂(n)−x _(2M)(n−d _(M))+x _(2M)(n)  (50)

[0298] The meaning that the equation (48) implies will now be described with respect to a case where there is no disturbance, and a case where there is a disturbance.

[0299] (i) When there is no disturbance:

[0300] Providing that there is no disturbance and that the plant model precisely represents the controlled plant, the second term of the right hand side of the equation (48), i.e., the state variable mat x_(M)(n−d_(M)) of the plant model after model dead-time d_(M) has elapsed should be equal to the state variable mat x(n) that can actually be observed. In this case, the equation (48) can therefore be rewritten into the following equation (51).

mat x _(M)(n−d _(M))=mat x(n)  (51)

[0301] In other words, the right-hang side of the equation (48) consists only of the third term mat x_(M)(n).

[0302] The state variable mat x_(M)(n) of the plant model is an estimated value of the state variable mat x(n) that will be detected in the controlled plant after the actual dead time d has elapsed, so it can be regarded as the estimated state quantity {circumflex over (x)}₁(n).

[0303] In this case, the controller 11 performs a feedback control of the air-fuel ration of the air-fuel mixture in the engine 1 using the estimated state quantity {circumflex over (x)}₁(n) as a parameter.

[0304] (ii) When there is a disturbance:

[0305] Providing that a load g due to the disturbance is exerted or the plant model cannot represent the controlled plant correctly, the state variable mat x_(M)(n−d_(M)) of the plant model after the model dead time d_(M) has elapsed will bring a different result from the state variable mat x(n) of the controlled plant that is actually observed later.

[0306] In this state, the second term of the right-hand side of the equation (48) cannot be eliminated.

[0307] If the disturbance g is step input here, or a variation of the state variable mat x(n) of the controlled plant is a step response, the state variable mat x_(M)(n) will take the same value as the state variable x_(M)(n−d_(M)), when the model dead time d_(M) has really elapsed.

[0308] If the system matrix mat M(n)of the disturbance compensator is equal to unity, the right-hand side of the equation (46) will consist only of the state variable mat x(n) of the controlled plant that is actually observed.

[0309] In this case, the controller 11 will perform feedback control of the air-fuel ratio by using the state variable mat x(n) of the controlled plant as a parameter. Although it is not a feedback control based on the estimated state, the effect of the disturbance can be eliminated.

[0310] Thus, in FIG. 16, by setting the transfer function M(z) of the disturbance compensator equal to unity, the combination of the dead time compensation according to Smith method and the disturbance compensation can be realized.

[0311] Next, referring to FIG. 17, a routine for calculating the estimated state variable mat {circumflex over (x)}(n) will be described.

[0312] This routine corresponds to the function of the state estimation unit 31 in FIG. 14, and is performed at intervals of ten milliseconds, when the engine 1 is operated with the target air-fuel ratio equivalent to the stoichiometric air-fuel ratio.

[0313] First, in a step S51, the controller 11 calculates the state quantities x₁(n) and x₂(n).

[0314] Here, x₁(n) is equal to the air-fuel ratio AFSAF detected by the upstream air-fuel ratio sensor 16. x₂(n) is calculated by the equation (66) which will be described later. The state variable mat x(n) is determined from these state quantities x₁(n) and x₂(n).

[0315] In a step 52, the cylinder intake air amount Qc is calculated by the following equation (52). The equation (52) calculates the cylinder intake air amount Qc by performing a reverse calculation from the basic fuel injection pulse width TP. $\begin{matrix} {{Qc} = \frac{TP}{{KCONSTA}\#}} & (52) \end{matrix}$

[0316] where,

[0317] Qc=cylinder intake air amount (kilogram/cycle),

[0318] TP=basic fuel injection pulse width (millisecond/cycle), and

[0319] KCONST#=constant (millisecond/kilogram).

[0320] In a following step S53, the system matrix mat A, the input matrix mat B, and the model dead time d_(M) of the plant model are calculated based on the cylinder intake air amount Qc by performing a subroutine shown in FIG. 18.

[0321] Referring to FIG. 18, in a first step S61, the controller 11 reads the cylinder intake air amount Qc.

[0322] In a step S62, according to the cylinder intake air amount Qc, the elements a₁ and a₀ of system matrix mat A and the elements b₁ and b₀ of the input matrix mat B are determined.

[0323] The dynamic characteristic of the air-fuel ratio of an engine has a strong nonlinear nature depending on the operation range of the engine.

[0324] Accordingly, a single dynamic characteristic model cannot represent the dynamic characteristic of the engine for all the operation ranges. The system matrix mat A and the input matrix mat B vary according to the operation range, and the state equation of the plant model of the secondary discrete system will also be different according to the operation range.

[0325] In order to cope properly with such a condition, the operation range of the engine 1 is divided into eight ranges according to the cylinder intake air amount Qc, and the values of the elements a₁, a₀, b₁, and b₀ matching with the respective operation ranges are previously determined and prestored in the memory of the controller 11.

[0326] When the engine 1 operates, the controller 11, in the step S62, first determines the operation range according to the cylinder intake amount Qc calculated in the step S61, and then selects a set of the elements a₁, a₀, b₁, and b₀ which corresponds to the determined operation range #1-#8.

[0327] For example, when the cylinder intake air amount Qc is a value between Qc1 and Qc2, the controller 11 determines that the operation range corresponds to a range #2, and sets the values of the elements a₁, a₀, b₁, and b₀ equal to those prestored for the range #2.

[0328] In a step S63, the controller 11 calculates the model dead time d_(M) by searching a map as shown in the figure based on the cylinder intake air amount Qc.

[0329] The model dead time d_(M) has such a characteristic that it takes a larger value as the cylinder intake amount Qc becomes smaller.

[0330] The dead time from when the fuel injection amount varies until when the resultant change in the air-fuel ratio is detected by the upstream air-fuel ratio sensor 16 depends on the flow velocity of cylinder intake air, and is large when the flow velocity is small.

[0331] Accordingly, a single model dead time cannot cover the whole flow velocity range of the cylinder intake air.

[0332] In order to set the optimal model dead time, therefore, different values are assigned for the model dead time d_(M) according to the cylinder intake air amount Qc.

[0333] After performing the processing of the step S63, the controller terminates the subroutine.

[0334] Referring again to FIG. 17, after calculating the system-matrix mat A, the input matrix mat B, and the model dead time d_(M) of the plant model in the step S53, the controller 11 calculates the air-fuel ratio CYLAF of the air-fuel mixture in the combustion chamber 1A in a step S54.

[0335] In this calculation, the controller 11 first calculates a fuel injection pulse width TIPSCYL by the following equation (53).

TIPSCYL=TP·TFBYA·(ALPHA+KBLRC−1)  (53)

[0336] where,

[0337] TP=basic fuel injection pulse width,

[0338] TFBYA=target equivalence ratio,

[0339] ALPHA=air-fuel ratio feedback correction value, and

[0340] KBLRC=air-fuel ratio learning value.

[0341] The air-fuel ratio feedback correction value ALPHA used by the equation (53) is a value obtained by the immediately preceding execution of the routine of FIG. 7.

[0342] As for the air-fuel ratio learning value KBLRC, also the newest value available at the time of the execution of this subroutine is applied.

[0343] The air-fuel ratio learning value KBLRC is a value calculated based on the air-fuel ratio feedback correction value ALPHA. The calculation method of the air-fuel ratio learning value KBLRC is disclosed by U.S. Pat. No. 6,014,962.

[0344] Using the air-fuel ratio feedback correction value ALPHA and the air-fuel ratio learning value KBLRC for the calculation of the fuel injection pulse width TIPSCYL is based on the following reason.

[0345] There is an individual difference in the upstream air-fuel ratio sensor 16 or the fuel injector 5 which are a part of the controlled plant.

[0346] If the fuel injection pulse width TIPSCYL is calculated from a value which has not been corrected by the air-fuel ratio feedback correction value ALPHA and the air-fuel ratio learning value KBLRC, an error due to the individual difference of the upstream air-fuel ratio sensor 16 or the fuel injector 5 will be incorporated into the state equation of the plant model.

[0347] Applying the air-fuel ratio feedback correction value ALPHA and the air-fuel ratio learning value KBLRC for the calculation of the fuel injection pulse width TIPSCYL prevents such an error from being incorporated into the state equation of the plant model, even when there is an individual difference in the upstream air-fuel ratio sensor 16 or in the fuel injector 5.

[0348] The controller 11 calculates a fuel injection amount Fc by the following equation (54). $\begin{matrix} {{Fc} = \frac{TIPSCYL}{{KCONST}\#}} & (54) \end{matrix}$

[0349] where,

[0350] Fc=fuel injection amount (kilogram/cycle),

[0351] TIPSCYL=fuel injection pulse width (millisecond/kilogram), and

[0352] KCONST#=constant (millisecond/kilogram).

[0353] An excess air factor λcyl is expressed by the following equation (55). $\begin{matrix} {{\lambda \quad {cyl}} = \frac{Qc}{{Fc} \cdot 14.7}} & (55) \end{matrix}$

[0354] Accordingly, the air-fuel ratio CYLAF of the air-fuel mixture in the combustion chamber 1A is expressed by the following equation (56). $\begin{matrix} {{CYLAF} = {\frac{Qc}{Fc} = {\lambda \quad {{cyl} \cdot 14.7}}}} & (56) \end{matrix}$

[0355] The cylinder intake air amount Qc is the value calculated by the equation (52), and the fuel injection amount Fc is the value calculated by the equation (54).

[0356] The above-mentioned equation (27) is obtained by substituting the equation (52) and the equation (54) for the equation (55).

[0357] Referring back to FIG. 17, in a step S55, the controller 11 sets the input u(n) equal to the air-fuel ratio CYLAF of the air-fuel mixture in the combustion chamber 1A.

[0358] In a following step S56, the controller 11 calculates the state quantities x_(1M)(n) and x_(2M)(n) of the plant model by the equation (41) using the input u(n), the system-matrix mat A, and the input matrix mat B. The state variable mat x_(M)(n) of the plant model is fixed according to the state quantities x_(1M)(n) and x_(2M)(n).

[0359] In a following step S57, the controller 11 calculates the estimated state quantities {circumflex over (x)}₁(n) and {circumflex over (x)}₂(n) from the state variable mat x(n) of the controlled plant, the state variable mat x_(M)(n) of the plant model, and the model dead time d_(M) by the equations (49) and (50).

[0360] The estimated state variable mat {circumflex over (x)}(n) is fixed according to the estimated state quantities {circumflex over (x)}₁(n) and {circumflex over (x)}₂(n).

[0361] After the processing of the step S57, the controller 11 terminates the routine.

[0362] The step S53 corresponds to the function of the model schedule unit 33 of FIG. 14. The steps S54 and S55 correspond to the function of the cylinder intake air-fuel ratio calculation unit 32 of FIG. 14. The step S56 corresponds to the function of the plant-model state -variable calculation unit 34 of FIG. 14. The step S57 corresponds to the function of the estimated state variable calculation unit 35 of FIG. 14.

[0363] The processing in the state estimation unit 31 is described below based on the state quantities in a practical manner.

[0364] The plant-model state -variable calculation unit 34 calculates a model air-fuel ratio which is an air-fuel ratio on the present occasion (n) matching with the present engine operation range, from the air-fuel ratio CYLAF of the air-fuel mixture in the combustion chamber 1A, which corresponds to the input u(n) of the plant model on the present occasion (n).

[0365] The estimated state variable calculation unit 35 calculates an estimated air-fuel ratio to be measured by the upstream air-fuel ratio sensor 16 in the upstream of the catalytic converter 7 after the model dead time d_(M) from the present occasion (n), from the model air-fuel ratio CYLAF, and the air-fuel ratio detected by the air-fuel ratio sensor 16 on the present occasion (n) by applying the aforesaid combination of the Smith dead time compensation and disturbance compensation shown in FIG. 16.

[0366] Upon input of the estimated air-fuel ratio from the estimated state variable calculation unit 35, the switching function calculation unit 23 of the sliding mode control unit 22 calculates the switching function of the present occasion (n) based on the estimated air-fuel ratio and the target air-fuel ratio TGABF by the following equation (57) which replaces the aforesaid equation (8).

σ(n)=S ₁ ·{{circumflex over (x)} ₁(n)−θ₁(n)}+S ₂ ·{{circumflex over (x)} ₂(n)−θ₂(n)}=0  (57)

[0367] where,

[0368] σ(n)=state quantity,

[0369] S₁=element of the switching function gain mat S, and

[0370] S₂=element of the switching function gain mat S

[0371] The linear input calculation unit 25 of the sliding mode control unit 22 calculates the linear input by the following equations (58) and (59) instead of the aforesaid equation (12).

mat u _(eq)(n)=−(mat S·mat B)⁻¹·mat S·{mat A·mat {circumflex over (x)}(n)−mat θ(n+1)}−σ(n)  (58)

[0372] The following equation (59) is obtained by rewriting the equation (58) using scalar values given by the equations (48) and (57). $\begin{matrix} {{u_{eq}(n)} = {\left( {{S_{1} \cdot b_{1}} + {S_{2} \cdot b_{0}}} \right)^{- 1} \cdot \left( {{a_{1} \cdot S_{1}} + {a_{0} \cdot S_{2}} + \frac{S_{1}^{2}}{S_{2}}} \right) \cdot \left\{ {{{\hat{x}}_{1}(n)} - {\theta_{1}(n)}} \right\}}} & (59) \end{matrix}$

[0373] When the operation range of the engine 1 varies from a range with a small model dead time d_(M) to a range with a large model dead time d_(M), the error in the estimated state quantity {circumflex over (x)}₂(n) will increase.

[0374] Specifically, it has been experimentally proved that, if a delay compensation based on a large model dead time d_(M) is applied to the air-fuel ratio that was calculated based on the fuel injection amount in the range with a small model dead time d_(M), the air-fuel ratio will fluctuate. This phenomenon will further be described below.

[0375] The state quantity x₂(n) and its target value θ₂(n) of the controlled plant, and the state quantity x_(2M)(n) and the estimated state quantity {circumflex over (x)}₂(n) of the plant model have the relation specified by the following equations (60)-(63).

θ₂(n)=−a ₀·θ₁(n)+b ₀ ·u(n−d _(M)−1)  (60)

x ₂(n)=−a ₀ ·x ₁(n−1)+b ₀ ·u(n−d _(M)−1)  (61)

x _(2M)(n)=−a ₀ ·x _(1M)(n−1)+b ₀ ·u(n−1)  (62)

{circumflex over (x)} ₂(n)x ₂(n+d _(M))=x ₂(n)−x _(2M)(n−d _(M))+x _(2M)(n)  (63)

[0376] The equations (60)-(62) are obtained as follows.

[0377] Since y(n)=x₁(n) holds from the equation (40), the target output value θ₁(n) is also the target value of the state quantity x₁(n). By expanding the equation (39), the following equations (64) and (65) are obtained.

x ₁(n+1)=−a ₁ ·x ₁(n)+x ₂(n)+b ₁ ·u(n−d)  (64)

x ₂(n+1)=−a ₀ ·x ₁(n)+b ₀ ·u(n−d)  (65)

[0378] In the equation (65), if n+1 is replaced by n, the following equation (66) will be obtained.

x ₂(n)=−a ₀ ·x ₁(n−1)+b ₀ ·u(n−1−d)  (66)

[0379] The equation (66) differs from the equation (62) in that x₂(n) includes dead time while x_(2M)(n) does not include dead time.

[0380] In other words, the equation (62) is obtained by eliminating the dead time d form the equation (66).

[0381] The target value of the state quantity x₂(n) is expressed by the following equation (67) in view of the equation (65).

θ₂(n+1)=−a ₀·θ₁(n)+b ₀ ·u(n−d)  (67)

[0382] If n+1 is replaced by n in the above equation (67) the following equation (68) will be obtained.

θ₂(n)=−a ₀·θ₁(n−1)+b ₀ ·u(n−d−1)  (68)

[0383] Since the relation θ₁(n)=θ₁(n−1) holds, the following equation (60) is obtained from the equation (68).

[0384] FIGS. 19A-19G show an example where the model dead time d_(M) varies from two to three due to the reduction of the cylinder intake air amount Qc, and the target value thets₂(n) of the state quantity decreases accordingly. It is assumed that the input u(n) of the plant model does not change.

[0385] In this case, in accordance with the reduction of the target value θ₂(n), both the state quantities x₂(n) and x_(2M)(n) decrease.

[0386] The estimated state quantity {circumflex over (x)}₂(n) is calculated at the timing when the model dead time d_(M) changes from two to three by the following equation (69) that is obtained from the equation (63).

{circumflex over (x)} ₂(n)=x ₂(n)−x _(2M)(n−3)+x _(2M)(n)  (69)

[0387] The equation (69) estimates, in the present cycle n, a state quantity x₂(n+3) of a cycle n+3.

[0388] It is assumed that the state quantities x₂(n) and x_(2M)(n) decrease from three to unity in the present cycle n as shown in FIGS. 19D and 19E.

[0389] Accordingly, both the state quantities x₂(n) and x_(2M)(n) are unity in the present cycle n. The state quantity x_(2M)(n−3) is a state quantity of the cycle n−3 and is equal to three. Therefore, the equation (69) in the present cycle n is calculated as follows.

{circumflex over (x)} ₂(n)=1−3+1=−1  (70)

[0390] This value of the estimated state quantity {circumflex over (x)}₂(n) is smaller than the state quantity x₂(n).

[0391] As shown in FIG. 19G, the state where the estimated state quantity {circumflex over (x)}₂(n) is equal to negative unity continues until just before the cycle n+3, and the estimated state quantity {circumflex over (x)}₂(n) becomes unity which is identical to the value of the state quantity x₂(n) in the cycle n+3.

[0392] However, {circumflex over (x)}₂(n) which is an estimated value of the state quantity is preferably equal to unity during the period from the cycle n to the cycle n+3 as shown by a dotted line in FIG. 19G. In other, words, if the equation (63) is applied in this section to calculate the estimated state quantity {circumflex over (x)}₂(n), an error will be generated. This error is hereinafter referred to as a model error.

[0393] In order to avoid the generation of the model error, the controller 11 prevents the equation (63) from being applied in the calculation of the estimated state quantity {circumflex over (x)}₂(n+d_(M)) until the model dead time d_(M) has elapsed after the increase of the model dead time d_(M), and sets the {circumflex over (x)}₂(n+d_(M)) equal to the state quantity x₂(n). It can be said that the controller 11 prevents the compensation of disturbance and dead time from being applied to the air-fuel ratio control during this period.

[0394] The controller 11 preforms the above processing in the step S57 using a subroutine of FIG. 20.

[0395] Referring to FIG. 20, in a step S71, the controller 11 first reads the model dead time d_(M) that was found in the step S63 of the subroutine of FIG. 18.

[0396] In a following step S72, the controller determines if the model dead time d_(M) is larger than the value that was applied in the immediately preceding occasion when the subroutine was executed.

[0397] If the model dead time d_(M) is larger than the immediately preceding value, the controller 11, in a step S73, sets the estimated state variable mat {circumflex over (x)}((n) to be equal to the state variable mat x(n). In other words, the estimated state quantity {circumflex over (x)}₂(n) is set equal to the state quantity x₂(n).

[0398] If the model dead time d_(M) not larger than the immediately preceding value, the controller 11, in a step S74, determines if the elapsed time after the model dead time d_(M) increase is larger than the model dead time d_(M).

[0399] In other words, the controller 11 determines if the present occasion corresponds to the model error generation period of FIG. 19G.

[0400] If the elapsed time does not reach the model dead time d_(M), the controller preforms the processing of the step S73 to maintain the estimated state variable mat {circumflex over (x)}(n) to be equal to the state variable mat x(n).

[0401] If the elapsed time has reached the model dead time d_(M), the controller 11 calculates the estimated state variable mat {circumflex over (x)}(n) by applying the aforesaid combination of the Smith dead time compensation and disturbance compensation by the equation (63).

[0402] After the processing of the step S73 or step S75, the controller 11 terminates the subroutine.

[0403] The above air-fuel ratio control according to this invention is summarized as follows.

[0404] The controller 11 compensates the dead time from when the air-fuel ratio is determined by the fuel injection until it is detected by the upstream air-fuel ratio sensor 16, by applying the combination of the Smith dead time compensation and disturbance compensation. The controller 11 then feedback controls the fuel injection amount through the sliding mode control process such that the air-fuel ratio after compensation is equal to the target air-fuel ratio.

[0405] The state estimation unit 31 approximates the dynamic characteristic of the exhaust gas flow of the engine 1 and that of the upstream air-fuel ratio sensor 16 by the transfer function of a secondary discrete system which has dead time. The transfer function is identified by the application of an ARX model.

[0406] Due to this process, the transfer function of the secondary discrete system with dead time is converted to the state equations that represent the controlled plant.

[0407] On the other hand, the dynamic characteristic of the exhaust gas flow of an imaginative engine without dead time and that of an imaginative upstream air-fuel ratio sensor without dead time are approximated by the transfer function of a secondary discrete system without dead time. The transfer function is identified by the application of an ARX model.

[0408] Due to this process, the transfer function of the secondary discrete system without dead time is converted to the state equations that represent the plant model. Furthermore, a state equation to which the Smith dead time compensation and disturbance compensation are applied is obtained based on the state variable mat x(n) representing the controlled plant with dead time, the state variable mat x_(M)(n) representing the plant model without dead time, and the model dead time d_(M).

[0409] The sliding mode control unit 22 calculates the difference between the estimated state variable mat {circumflex over (x)}(n) and the target value mat θ(n) of the state variable as the state quantity mat e(n) of the error. Then it multiplies the state quantity mat e(n) of the error by the switching function gain mat S to obtain the state quantity σ(n) of the switching function.

[0410] Based on the state quantity σ(n) of the switching function, the sliding mode control unit 22 calculates the nonlinear input u_(nl)(n) and the linear input u_(eq)(n), and it finally calculates the total control input u_(sl)(n) by adding an integrated value of the linear input u_(eq)(n) to the nonlinear input u_(nl)(n). The fuel injection amount of the fuel injector 5 is controlled according to the total control input u_(sl)(n).

[0411] Due to the above air-fuel control process according to this invention, in the air-fuel ratio control of the engine 1 which has dead time, the air-fuel ratio does not fluctuate even when the feedback gain is increased, so the feedback gain can be increased even in a range near the idle operation range of the engine 1 where the intake air amount is small and the dead time largely affects the air-fuel ratio control.

[0412] Although the individual difference in the performance of the fuel injector 5 or in the upstream air-fuel ratio sensor 16 brings an error to air-fuel ratio control, the effect of such an individual difference is eliminated by calculating the fuel injection pulse width TIPSCYL using the air-fuel ratio feedback correction value ALPHA and the learning value KBLRC thereof.

[0413] The dynamic characteristic of an air-fuel ratio varies with an engine load and engine rotation speed, and a large error will be generated, if a single state equation is applied over the whole operation ranges of the engine 1.

[0414] The air-fuel ratio control according to this invention selectively applies a state equation of the secondary discrete plant model without dead time from among the plural equations set according to cylinder intake air amount Qc that represents the engine load and engine rotation speed.

[0415] Therefore, in all operation ranges, the optimal state equation of the secondary discrete plant model without dead time can be used.

[0416] As a result, even when performing air-fuel ratio feedback control at a fixed time interval, a desirable control response is realized all over the operating range irrespective of the number of combustions per unit time of the engine 1.

[0417] Since the controller 11 according to this invention calculates the model dead time d_(M) according to the cylinder intake air amount Qc, the model dead time d_(M) is quite close to the real dead time incorporated in the air-fuel ratio control of the engine 1.

[0418] If Smith method for dead time compensation is applied when the model dead time d_(M) has increased, the air-fuel ratio feedback correction amount may be excessively large and the air-fuel ratio may fluctuates as a result.

[0419] The controller 11 according to this invention prevents Smith dead time compensation and the disturbance compensation from being performed from when the model dead time d_(M) is increased until when the elapsed time after the increase of the model dead time d_(M) reaches the increased model dead time d_(M).

[0420] Therefore, even when the model dead time d_(M) increases, the air-fuel ratio fluctuation due to excessive feedback correction will not occur.

[0421] The controller 11 according to this invention selectively applies a different transfer function Geng(q) of the secondary discrete system according to the operation range of the engine 1. For this purpose, various transfer functions Geng(q) are previously identified through the process of the step response in various operation ranges. The controller 11 performs air-fuel ratio feedback control by applying a sliding mode control process based on the state equation of the secondary discrete system converted from the selected transfer function Geng(q).

[0422] Therefore, a plant model can be built with more accuracy than that built with the prior art technique which computes the state equation for the sliding mode control process from a physical model of continuous system.

[0423] Moreover, the responsibility and robustness of control improve compared with classic control like three element control.

[0424] The sliding mode control process increases the response in the air-fuel ratio control as well as its robustness compared with a classic control process such as a proportional/integral/derivative (PID) control process. Since the switching function is uniquely identified by step response measurement, the switching function as well as the linear input for the sliding mode control process can be designed easily.

[0425] According to this invention, the total control input u_(sl)(n) is calculated based on the integral value of the linear input u_(eq)(n) that was calculated by the integrator 26. Compared with the case where it is calculated directly from the linear input u_(eq)(n), this process eliminates a steady state error while maintaining the control response at a preferred level.

[0426] If a large control input is given to the fuel injector 5 in order to accelerate the convergence of the air-fuel ratio to the target air-fuel ratio, the drivability of the vehicle as well as the exhaust emission of the engine 1 may deteriorate. To avoid such a situation, it is required to determine the switching function gain mat S and the integration gain μ according to the operation range of the engine 1.

[0427] The controller 11 according to this invention first calculates the integration gain μ according to the rotation speed of the engine 1 and then determines the switching function gain mat S using the equation (29), so the design of the switching function is easy.

[0428] When the feedback control of the fuel injection amount is performed at fixed time intervals, the number of fuel injections per unit time increases as the rotation speed of the engine 1 increases, and the apparent feedback gain decreases.

[0429] As a result, the trackability to the target value of the air-fuel ratio in a high rotation speed range may not be as good as in a low rotation speed range.

[0430] Since the controller 11 according to this invention calculates the integration gain μ according to the engine rotation speed, even when the feedback control of the air-fuel ratio is performed at fixed time intervals, decrease in the apparant integration gain does not occur and the optimal integration gain is obtained all over the engine operation range.

[0431] The controller 11 according to this invention, switches the sign of the element S₂ of the switching function gain mat S according to the sign of the element a₀, which represents the state of the system matrix mat A, so the air-fuel ration is always corrected in the right direction even in the case where the state of the system matrix has varied.

[0432] The contents of Tokugan 2001-224162, with a filing date of Jul. 25, 2001 in Japan, are hereby incorporated by reference.

[0433] Although the invention has been described above by reference to certain embodiments of the invention, the invention is not limited to the embodiments described above. Modifications and variations of the embodiments described above will occur to those skilled in the art, in light of the above teachings.

[0434] For example, the above embodiment is related with an air-fuel ratio control using a state equation having two inputs and two outputs, but this invention is also applicable to an air-fuel ratio control using a state equation of other type.

[0435] In the above embodiment, although the target air-fuel ratio is varied, this invention is applicable to the engine which is operated with a fixed target air-fuel ratio such as the stoichiometric air-fuel ratio as long as it performs air-fuel ratio feedback control.

[0436] The embodiments of this invention in which an exclusive property or privilege is claimed are defined as follows: 

What is claimed is:
 1. An air-fuel ratio control device for an engine with a combustion chamber for burning a mixture of air and fuel, comprising: a fuel injector which injects fuel in the engine to generate the mixture; a sensor which detects an air-fuel ratio of the mixture from a composition of exhaust gas of the engine; and a programmable controller programmed to: calculate a dead time which represents a lag between the variation of air-fuel ratio of the mixture in the combustion chamber and the variation of air-fuel ratio which is detected by the sensor; calculates an estimated state quantity by applying a dead time compensation according to Smith method and a disturbance compensation to the air-fuel ratio detected by the sensor; calculate an air-fuel ratio feedback correction amount based on the estimated state quantity and a predetermined target air-fuel ratio through a sliding mode control process; and control a fuel injection amount of the fuel injector based on the air-fuel ratio feedback correction amount.
 2. The air-fuel ratio control device as defined in claim 1, wherein the controller is further programmed to perform the disturbance compensation using a disturbance compensator which has a transfer function equal to unity.
 3. The air-fuel ratio control device as defined in claim 1, wherein the controller is further programmed to: calculate a first state variable of the engine as a controlled plant from the air-fuel ratio detected by the sensor; calculate an intake air amount to the combustion chamber from the fuel injection amount of the fuel injector; determine a system matrix, an input matrix and a dead time based on the intake air amount; calculate the air-fuel ratio of the mixture in the combustion chamber from the intake air amount, as an input; calculate a second state variable of the engine as a plant model from the input, the system matrix and the input matrix; and calculate an estimated state variable of the engine as the controlled plant in a state where the dead time has elapsed from the first state variable, the second state variable and the dead time by applying the dead time compensation according to Smith method and the disturbance compensation.
 4. The air-fuel ratio control device as defined in claim 1, wherein the controller is further programmed to calculate a difference between the estimated state variable and a target state variable as a state quantity of an error, calculate a state quantity of the switching function based on the state quantity of the error, calculate an linear input based on the state quantity of the error, calculate a nonlinear input based on the state quantity of the switching function, calculate a total control input by adding an integrated value of the linear input to the nonlinear input, and calculate the air-fuel ratio feedback correction amount by converting the total control input.
 5. The air-fuel ratio control device as defined in claim 3, wherein the first state variable is defined by a state equation which defines the controlled plant as a secondary discrete system which has a dead time.
 6. The air-fuel ratio control device as defined in claim 3, wherein the second state variable is defined by a state equation which defines the plant model as a secondary discrete system which does not have a dead time.
 7. The air-fuel ratio control device as defined in claim 3, wherein the controller is further programmed to increase the dead time as the intake air amount becomes smaller.
 8. The air-fuel ratio control device as defined in claim 7, wherein the controller is further programmed to determine if the dead time has increased, and prevent the dead time compensation according to Smith method and the disturbance compensation from being performed during a period from the timing of increase of the dead time until the dead time has elapsed.
 9. The air-fuel ratio control device as defined in claim 3, wherein the controller is further programmed to repeatedly perform the calculation of the air-fuel ratio feedback correction amount and the control of the fuel injection amount based on the air-fuel ratio feedback correction amount at fixed time intervals and calculate the intake air amount based on the fuel injection amount calculated from the most recent value of the air-fuel ratio feedback correction value.
 10. The air-fuel ratio control device as defined in claim 3, wherein the controller is further programmed to calculate the estimated state variable by applying the dead time compensation according to Smith method and the disturbance compensation defined by the following equation (A): $\begin{matrix} \begin{matrix} {{{mat}\quad {\hat{x}(n)}} = \quad {{mat}\quad {x\left( {n + d_{M}} \right)}}} \\ {= \quad {{{mat}\quad {x(n)}} - {{mat}\quad {x_{M}\left( {n - d_{M}} \right)}} + {{mat}\quad {x_{M}(n)}}}} \end{matrix} & (A) \end{matrix}$

where, d_(M)=dead time, mat {circumflex over (x)}(n)=matrix representing the estimated state variable, mat x(n)=matrix representing the first state variable, mat x_(M)(n)=matrix representing the second state variable, and mat x_(M)(n−d_(M))=matrix representing the state variable of the plant model after the dead time d_(M) has elapsed.
 11. An air-fuel ratio control device for an engine with a combustion chamber for burning a mixture of air and fuel, comprising: means for injecting fuel in the engine to generate the mixture; means for detecting an air-fuel ratio of the mixture from a composition of exhaust gas of the engine; means for calculating a dead time which represents a lag between the variation of air-fuel ratio of the mixture in the combustion chamber and the variation of air-fuel ratio which is detected by the detecting means; means for calculating an estimated state quantity by applying a dead time compensation according to Smith method and a disturbance compensation to the air-fuel ratio detected by the detecting means; means for calculating an air-fuel ratio feedback correction amount based on the estimated state quantity and a predetermined target air-fuel ratio through a sliding mode control process; and means for controlling a fuel injection amount of the injecting means based on the air-fuel ratio feedback correction amount
 12. An air-fuel ratio control method for an engine with a combustion chamber for burning a mixture of air and fuel, and a fuel injector which injects fuel in the engine to generate the mixture, the method comprising: detecting an air-fuel ratio of the mixture from a composition of exhaust gas of the engine; calculating a dead time which represents a lag between the variation of air-fuel ratio of the mixture in the combustion chamber and the variation of a detected air-fuel ratio; calculating an estimated state quantity by applying a dead time compensation according to Smith method and a disturbance compensation to the detected air-fuel ratio; calculating an air-fuel ratio feedback correction amount based on the estimated state quantity and a predetermined target air-fuel ratio through a sliding mode control process; and controlling a fuel injection amount of the fuel injector based on the air-fuel ratio feedback correction amount. 